<?php
/**
 * 后台用户登陆控制器
 * @version 0.0.1
 * @author laiwenbang <375500819@qq.com>
 */

namespace Admin\Controller;
use Think\Controller;

class LoginController extends Controller {

	//保存用户模型变量
	private $model;
	/**
	 * 初始化方法
	 */
	public function _initialize() {
		$this -> model = D('User');
	}

	/**
	 * 后台登陆方法
	 */
	public function index() {

		$this -> display();
	}

	/**
	 * 验证验证码方法
	 */
	public function checkCode() {
		if (!IS_AJAX)
			$this -> error('非法请求');
		$code = I('post.code', '', 'strval');
		//实例化验证码类
		if ($this -> check_verify($code)) {
			$this -> ajaxReturn(array('status' => 1));
		}
		$this -> ajaxReturn(array('status' => 0));

	}

	/**
	 * 提交登陆
	 */
	public function login() {
		if (IS_POST) {
			if ($this -> check_verify(I('post.code', '', 'stval'))) {
				$this -> error('验证码输入有误');
			}
			//检测用户名是否存在如果存在那么返回该用户相应的uid username status
			$userInfo = $this -> model -> checkUser(I('post.'));
			if (!$userInfo) {
				$this -> error($this -> model -> getError());
			}
			//表示用户被锁定
			if ($userInfo['user_status'] == '锁定') {
				$this -> error('对不起您的帐号被锁定,请联系管理员');
			}
			//登陆成功后将用户id和用户名写入到session中
			session('uid', $userInfo['uid']);
			session('username', $userInfo['username']);
			$this -> success('登陆成功', U('Index/index'));
		}
		$this->error('非法请求');

	}

	/**
	 * 检测验证码是否输入正确
	 * @param String $code
	 * @param String $id
	 * @return boolean
	 */
	function check_verify($code, $id = '') {
		$config['reset'] = false;
		$verify = new \Think\Verify($config);
		return $verify -> check($code, $id);
	}

	/**
	 * 后台验证码方法
	 */
	public function code() {
		//设置验证码宽高
		$config['fontSize'] = '18px';
		//配置验证码字体大小
		$config['imageH'] = '35px';
		//配置验证码高
		$config['imageW'] = '150px';
		//配置验证码宽
		$config['length'] = '1';
		//配置验证字数
		$config['reset'] = false;
		$code = new \Think\Verify($config);
		$code -> entry();
	}

}
